草庐IT

windows - 硬件信息

全部标签

go - 从 go 获取 Windows 全名的最佳方法是什么?

在Windows中,我可以运行类似systeminfo|的东西findstr/C:"OSName将Windows全名输出到控制台。我尝试了几种不同的管道输出变体,从一个命令到另一个命令,但我只得到空字符串。示例first:=exec.Command("systeminfo")second:=exec.Command("findstr/C:'OSName'")reader,writer:=io.Pipe()first.Stdout=writersecond.Stdin=readervarbufferbytes.Buffersecond.Stdout=&bufferfirst.Start(

inheritance - Golang : when typecasting child struct to parent struct, 子结构信息丢失?

例如在将父结构嵌入子结构之后:typeParentNodestruct{}typeChildNodestruct{ParentNodeIdentstring}funcParentType()ParentNode{child:=ChildNode{Ident:"node"}fmt.Println(child)returnchild.ParentNode}funcmain(){x:=ParentType()fmt.Println(x.Ident)}这是否会打印出“节点”并返回包含所有信息的包含在父结构中的子结构,这样我们就可以在拥有实际子结构的同时操作表面上的父结构?这样做的想法类似于Ja

golang windows服务包初始化设置

我正在尝试使用这个包创建一个golangwindows服务godoc.org/golang.org/x/sys/windows/svc一切正常,直到我添加一个初始化函数来初始化设置。然后服务无法启动。我试图通过这个包加载config.jsongithub.com/spf13/viper我得到的错误是:无法启动服务:服务没有及时响应启动或控制请求。 最佳答案 @JimB谢谢。就是这样,在调试中运行它会在exe所在的文件夹中查找,在服务中运行时,它会在system32文件夹中查找。我安装了github.com/kardianos/ose

logging - 如何将自定义(非 const)字符串信息添加到日志格式?

我已经开始使用Go登录,并且遇到了这篇关于登录Go的文章https://www.goinggo.net/2013/11/using-log-package-in-go.html使用以下源代码(略有改动):var(Trace*log.LoggerInfo*log.LoggerWarning*log.LoggerError*log.Logger)funcInit(traceHandleio.Writer,infoHandleio.Writer,warningHandleio.Writer,errorHandleio.Writer){Trace=log.New(traceHandle,“TR

go - 如何在 Golang for windows 中以编程方式更改应用程序优先级?

我有CPU密集型任务,我希望系统和用户程序具有更高的优先级,以便我的Golang应用程序仅在系统空闲时运行,或者更好地使用空闲CPU内核。像syscall.Setpriority(whichint,whoint,prioint)(err错误)但这只适用于Linux而不是Windows。提前致谢 最佳答案 Windows的等价物是SetPriorityClass. 关于go-如何在Golangforwindows中以编程方式更改应用程序优先级?,我们在StackOverflow上找到一个类

Go CPU 配置文件缺少函数调用信息

我一直在尝试根据https://software.intel.com/en-us/blogs/2014/05/10/debugging-performance-issues-in-go-programs等文章深入研究Go(golang)性能分析.但是,在实际的profiled程序中,生成的CPUprofiles信息很少。go工具要么告诉配置文件为空,要么没有关于任何函数调用的信息。这在OSX和Linux上都会发生。我生成了一个这种情况的最小示例-我正在以类似的方式收集配置文件,并且在实际程序中也面临同样的问题。这是miniprofile/main.go的源代码:packagemaini

c++ - 在 Windows 上使用 C++ 在本地发送 POST 请求

我在同一台电脑上(在Windows10上)有一个c++客户端和一个golang服务器,我希望客户端向服务器发送POST请求。我要发送的请求是/test请求。两个项目编译运行都很好,但是请求没有被客户端处理,即使服务器显示"HTTP-GA-SERVER:POSTSuccessfullysent"这是C++代码:#include#include"ga-http-post.h"intsendPostToMushroom(HttpRequestTypereq,void*metrics){WSADATAwsaData;if(WSAStartup(MAKEWORD(2,2),&wsaData)!=

go - 从二进制文件中一致地构建/删除个人信息

我现在意识到Go会在二进制文件中保存源代码的绝对路径,以便打印堆栈跟踪等。我不想完全删除这些信息,但是,这也意味着每个构建相同程序的开发人员都会生成具有不同校验和的可执行文件。在我尝试使用chroot或类似的东西重新实现构建之前:没有任何方法可以告诉Go不要为此目的使用绝对路径吗? 最佳答案 我知道它不会直接解决您的问题,但@JimB的建议确实指出了针对您似乎遇到的问题的一类解决方案。(我认为)更简单的方法之一是让您的开发人员安装Docker并创建一个别名以便go命令运行:dockerrun--rm--tty--volume$GOP

windows - 如何在 Windows 中删除自身(可执行文件)?

packagemainimport"os"funcmain(){err:=os.Remove(os.Args[1])iferr!=nil{panic(err)}}编译这个GOOS=windowsGOARCH=386gobuildtest.go然后用wine运行Z:\tmp>test.exetest.exefixme:process:SetProcessPriorityBoost(0xffffffff,1):stubpanic:removetest.exe:Accessdenied.goroutine1[running]:panic(0x462c40,0x5b3f9ca0)/usr/lo

Goroutine 在 Windows 和 Linux 上的行为不同

我是GO的新手。我有以下遗留代码。vardb*sql.DBfuncinit(){gofeedChan()connString:=os.Getenv("DB_CONN")varerrerrordb,err=sql.Open("postgres",connString)iferr!=nil{log.Fatalf("Failedtoconnecttodatabaseat%q:%q\n",connString,err)}//confirmconnectioniferr=db.Ping();err!=nil{log.Fatalf("Unabletopingdatabaseat%q:%q\n",c